\chapter{脉冲响应}
\section{局部投影}
本节内容主要源自Jorda (2005)\cite{Jorda2005}。VAR通常有着显著的误设，比如很可能是VARMA模型，或者在DSGE模型中，这个数据创造过程也不是VAR。局部线性投影脉冲响应不需要未知多变量动态系统的设置和估计，对于数据生成过程误设是稳健的。
\subsection{基本的定义}
脉冲响应可以定义为两个预测的差(Koop et al., 1996; Hamilton, 1994)
\begin{equation}\label{lj1}
 IR(t,s,\bm{d}_i) = E[\bm{y}_{t+s}|\bm{v}_t=\bm{d}_i;\bm{X}_t] -E[\bm{y}_{t+s}|\bm{v}_t=\bm{0};\bm{X}_t]\hspace{2em}s= 0,1,2,\cdots
\end{equation}

其中，$ E[.|.] $表示一个有着最小均方误的预测，$ \bm{y}_t $是$ n\times 1 $的随机向量，$ \bm{X}_t=(\bm{y}_{t-1},\bm{y}_{t-2},\cdots)' $，$ \bm{v}_t $是诱导形式的扰动，$ \bm{D} $表示$ n\times n $的矩阵，它的列$ \bm{d}_i $就是一个实验冲击。这个冲击要多说两句，对于普通的乔里斯基分解，即误差的方差协方差矩阵$ \bm{\Omega}=\bm{PP}'$，此时$ \bm{D}=\bm{P}^{-1} $。这是个什么含义呢，因为误差的方差协方差结构实际定义了冲击项之间的联系，不是说某个变量可以变化一下，另一个变量不用变。这是不行的，它们之间有一个协方差矩阵的约束。而乔里斯基分解则表达了这些冲击之间互动的约束。

一个局部投影可以定义为，
\begin{equation}\label{lj2}
 \bm{y}_{t+s}=\bm{\alpha}^s+\bm{B}_1^{s+1}\bm{y}_{t-1}+\bm{B}_2^{s+1}\bm{y}_{t-2}+\cdots+\bm{B}_p^{s+1}\bm{y}_{t-p}+\bm{u}_{t+s}^s\hspace{2em}s=0,1,\cdots,h 
\end{equation}


根据\eqref{lj1}式，局部线性投影的脉冲响应就是，
\[ \hat{IR}(t,s,\bm{d}_i)=\hat{\bm{B}}_1^s\bm{d}_i\hspace{2em}s=0,1,\cdots,h \]
一个明显的标准化就是$ \bm{B}_1^0=\bm{I} $。对于\eqref{lj2}式中系数的一致和分布性质，很多论文进行了讨论。此处我们讲几个实践中有用的东西，
\begin{itemize}
	\item 对于每个预测期数$ s $，最大滞后的$ p $不必一致。
	\item 一致性并不要求\eqref{lj2}式中$ h $个系统回归方程联合估计，对于$ \bm{y}_t $中第$ j $个变量的脉冲响应，可以用$ y_{jt} $对$ \bm{X}_t=(\bm{y}_{t-1},\bm{y}_{t-2},\cdots,\bm{y}_{t-p})' $进行单变量回归。
\end{itemize}
\subsection{局部线性投影和VAR的关系}

\subsection{非线性下的一个表述}
温和的假设下，一个非线性时间序列$ \bm{y}_t $可以表达成一个白噪声$ \bm{v}_t $过去值的一般函数，
\[ \bm{y}_t=\Phi(\bm{v}_t,\bm{v}_{t-1},\cdots) \]

通过泰勒序列展开，我们可以类似地拓展\eqref{lj2}式中的局部投影，
\[ \bm{y}_{t+s}=\bm{\alpha}^s+(\bm{B}_1^{s+1}\bm{y}_{t-1}+\bm{Q}_1^{s+1}\bm{y}^2_{t-1}+\bm{C}_1^{s+1}\bm{y}^3_{t-1})+\bm{B}_2^{s+1}\bm{y}_{t-2}+\cdots+\bm{B}_p^{s+1}\bm{y}_{t-p}+\bm{u}_{t+s}^s \]

注意，我们只将非线性拓展到了$ \bm{y}_{t-1} $，因为局部投影只跟它有关。很明显，此时$ s $期的脉冲响应为
\begin{align*}
 IR(t,s,\bm{d}_i) =& [\hat{\bm{B}}_1^{s}(\bm{y}_{t-1}+\bm{d}_i)+\hat{\bm{Q}}_1^{s}(\bm{y}_{t-1}+\bm{d}_i)^2+\hat{\bm{C}}_1^{s}(\bm{y}_{t-1}+\bm{d}_i)^3]\\
 &-(\hat{\bm{B}}_1^{s}\bm{y}_{t-1}+\hat{\bm{Q}}_1^{s}\bm{y}^2_{t-1}+\hat{\bm{C}}_1^{s}\bm{y}^3_{t-1})\\
 =&\hat{\bm{B}}_1^{s}\bm{d}_i+\hat{\bm{Q}}_1^{s}(2\bm{y}_{t-1}\bm{d}_i+\bm{d}_i^2)+\hat{\bm{C}}_1^{s}(3\bm{y}_{t-1}^2\bm{d}_i+3\bm{y}_{t-1}\bm{d}_i^2+\bm{d}_i^3)
\end{align*}

如果定义$ \bm{\lambda}_i=(\bm{d}_i,2\bm{y}_{t-1}\bm{d}_i+\bm{d}_i^2,3\bm{y}_{t-1}^2\bm{d}_i+3\bm{y}_{t-1}\bm{d}_i^2+\bm{d}_i^3)',\hat{\bm{\Sigma}}_C $是$ (\hat{\bm{B}}_1^{s},\hat{\bm{Q}}_1^{s},\hat{\bm{C}}_1^{s}) $的方差协方差矩阵，一个95\%的置信区间则为$ 1.96\pm \bm{\lambda}'_i\hat{\bm{\Sigma}}_C\bm{\lambda}_i $。

一个更加一般的对\eqref{lj2}式的非线性拓展为，
\[ \bm{y}_{t+s}=m^s(\bm{y}_{t-1};\bm{X}_{t-1})+\bm{u}_{t+s}^s \]

其中$ m $可以为任何形式的参数、半参和非参逼近。

\section{广义脉冲响应: Koop et al. (1996)}
定义，
\[ GI_Y(n,\bm{V}_t,\bm{\Omega}_{t-1})=E[\bm{Y}_{t+n}|\bm{V}_t,\bm{\Omega}]-E[\bm{Y}_{t+n}|\bm{\Omega}] \]
\subsection{线性模型设置下的广义脉冲}
\subsubsection{单变量情形}
对于时序的MA形式，有
\[
Y_t=\sum_{i=0}^\infty a_i V_{t-i},\hspace{2em} V_t\sim i.i.d.(0,1)
\]
这样广义脉冲就可以写为，
\[
GI_Y(n,V_t,\Omega_{t-1})=a_nV_t
\]
此时，设定冲击的大小，就可以得到广义脉冲。譬如如果设置冲击为1，这就成了最普通的脉冲响应了。
\subsubsection{多变量情形}
\[
\bm{Y}_t=\sum_{i=0}^\infty \bm{A}_i \bm{V}_{t-i},\hspace{2em} \bm{V}_t\sim \mathcal{N}(0,\bm{\Sigma})
\]
这样广义脉冲就可以写为，
\[
GI_Y(n,\bm{V}_t,\bm{\Omega}_{t-1})=\bm{A}_n\bm{V}_t\tag{2}
\]
此时，因为$\bm{V}_t$是向量，就不能通过设置其中某个冲击为1来得到它对其他变量的广义脉冲。因为冲击之间是存在联系的，这种联系由$\bm{\Sigma}$体现。对于$V_{it}$的一个实现$v_{it}$，基于此实现，对$\bm{V}_t$的期望为，
\[
E[\bm{V}_t|V_{it}=v_{it}]=\eta_i\sigma_{ii}^{-1}v_{it}
\]
其中，$\sigma_{ii}=E[V_{it}^2], \eta_i=E[\bm{V}_tV_{it}]$。\textbf{\color{blue}注意观察上式，前面那个部分不就是回归模型的系数吗？}基于该期望，联合(2)式，就可以计算$t$期第$i$个冲击对向量$\bm{Y}_{t+n}$的广义脉冲为，
\[
GI_Y(n,\bm{V}_t,\bm{\Omega}_{t-1})=\bm{A}_n\eta_i\sigma_{ii}^{-1}v_{it}=(\bm{A}_n\eta_i/\sqrt{\sigma_{ii}})\cdot(v_{it}/\sqrt{\sigma_{ii}})
\]
注意到第二个括号内就是一个标准差的冲击。

\subsection{一般情况下的广义脉冲}
	假设模型已经估计得到，可按如下步骤获得广义脉冲响应：
	\begin{enumerate}
		\item 	给定历史$ \omega_{t-1} $和当前冲击$ \nu_t $，
		\begin{enumerate}
			\item 使用可观测的时序值$ \omega_{t-1} $从联合分布$ V_t $中随机抽取$ \nu_t $，两种办法可以搞定：
			\begin{itemize}
				\item 第一，假设$ V_t $是高斯或者其他分布形式，然后直接从里面抽；
				\item 第二，自助法抽。不同的体制就可以分隔开来抽。
			\end{itemize}			
			\item 然后使用时序模型（即模型的函数形式和前面创造的冲击$ \nu_t $）产生模拟的$ Y_t $，可以看做是从$ Y_{t-1},\cdots,Y_{t-p} $的联合分布中形成的抽取。			
		\end{enumerate}
	\item 若要实现$ N $期脉冲响应，则从误差项（$ K $维的向量）中随机抽取$ (N+ 1)\times R $个值；
	\item 使用第2步获得的前面$ N $个随机冲击计算$ y_{t+n}^0(\nu_t,\omega_{t-1}),n=1,2,\cdots,N $（注意脚标从1开始）；
	\item 使用同样的$ N $个随机冲击但再加上一个额外的随机冲击以获得$ y_{t+n}^0(\omega_{t-1}) ,n=0,1,2,\cdots,N$（注意脚标从0开始）。为什么加上额外一个冲击，反而变成了$ y_{t+n}^0$，因为后面通过加总，实际把该额外的冲击平均成了0。
	\item 重复第3步和第4步$ R $次以形成一个平均，
	\begin{align*}
	\bar y_{R,t+n}(\nu_t,\omega_{t-1})&=\frac{1}{R}\sum_{i=0}^{R-1}y_{t+n}^i(\nu_t,\omega_{t-1}),\qquad n=1,2,\cdots,N\\
	\bar y_{R,t+n}(\omega_{t-1})&=\frac{1}{R}\sum_{i=0}^{R-1}y_{t+n}^i(\nu_t,\omega_{t-1}),\qquad n=0,1,2,\cdots,N
	\end{align*}
	\item 取上述两个平均之差形成广义脉冲；
	\item 重复1至6多次直至想要的次数；
	\end{enumerate}

Martin et al. (2011)有一个更通俗的实践表述：
\begin{itemize}
	\item 第一步，估计模型，然后获得残差$ \hat{\bm{v}}_t,t=1,2,\cdots,T $
	\item 第二步，模拟模型$ n+1 $期，$ n+1 $个残差源自$ \hat{v}_1,\hat{v}_2,\cdots,\hat{v}_T $的抽取。重复这个模拟过程$ R $遍，取平均，作为基准的条件期望。
	\item 第三步，重复第二步的步骤，而且残差要一样，唯一的例外是第一个冲击换成$ \hat{v}_1+\delta $。重复$ R $遍，取平均，作为冲击的条件期望。
	\item 第四步，再次重新抽样，重复第二步和第三步。此时初始条件换为$ \hat{v}_2+\delta $，它是第二个残差。
	\item 第五步，重复第四步，然后取基准条件期望和冲击条件期望的平均差值作为非线性脉冲响应。
\end{itemize}	